home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 July: Mac OS SDK / Dev.CD Jul 96 SDK / Dev.CD Jul 96 SDK1.toast / Development Kits (Disc 1) / OpenDoc Development Framework / ODFDev / ODF / Found / FWString / Include / SLCharIt.h < prev    next >
Encoding:
Text File  |  1996-04-25  |  4.7 KB  |  145 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                SLCharIt.h
  4. //    Release Version:    $ ODF 1 $
  5. //
  6. //    Copyright:    (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9.  
  10. #ifndef SLCHARIT_H
  11. #define SLCHARIT_H
  12.  
  13. #ifndef FWCHARAC_H
  14. #include "FWCharac.h"
  15. #endif
  16.  
  17. #ifndef SLLOCALE_H
  18. #include "SLLocale.h"
  19. #endif
  20.  
  21. //========================================================================================
  22. //    Forward Declarations
  23. //========================================================================================
  24.  
  25. class FW_OTextRunReader;
  26. class FW_OTextRunWriter;
  27.  
  28. //========================================================================================
  29. //    STRUCT FW_SPrivTextReader
  30. //========================================================================================
  31.  
  32. struct FW_SPrivTextReader;    // Opaque data structure
  33. struct FW_SPrivTextWriter;    // Opaque data structure
  34.  
  35. typedef FW_SPrivTextReader* FW_HTextReader;
  36. typedef FW_SPrivTextWriter* FW_HTextWriter;
  37.  
  38. //========================================================================================
  39. //    Constants
  40. //========================================================================================
  41.  
  42. const int kTempHackOneBytePerCharacter = 1;
  43.  
  44. //========================================================================================
  45. //    FW_PrivTextReader Functions
  46. //========================================================================================
  47.  
  48. // Export or Import functions for CFM-68K [sfu]
  49.  
  50. #if defined(FW_ODFLIB_IMPORT)
  51. #pragma import on
  52. #elif defined(FW_ODFLIB)
  53. #pragma export on
  54. #endif
  55.  
  56. FW_EXTERN_C_BEGIN
  57.  
  58.     // ----- Initialization & Destruction -----
  59.     
  60.     FW_HTextReader         FW_PrivTextReader_New(Environment *ev, FW_OTextRunReader* adoptedReader);
  61.     
  62.     void                 FW_PrivTextReader_Acquire(FW_HTextReader self, Environment *ev);
  63.     
  64.     void                 FW_PrivTextReader_Release(FW_HTextReader self, Environment *ev);
  65.     
  66.     // ----- Attribute Accessors -----
  67.     
  68.     FW_ByteCount        FW_PrivTextReader_GetPosition(FW_HTextReader self);
  69.             
  70.     FW_ByteCount         FW_PrivTextReader_GetByteLength(FW_HTextReader self);
  71.     
  72.     void                 FW_PrivTextReader_SetPosition(FW_HTextReader self, Environment *ev, FW_ByteCount position);
  73.     
  74.     // ----- Character Iteration -----
  75.     
  76.     FW_LChar             FW_PrivTextReader_PeekCharacter(FW_HTextReader self, FW_ByteCount* bytesInChar);
  77.     
  78.     void                 FW_PrivTextReader_Advance(FW_HTextReader self, Environment *ev, FW_ByteCount delta);
  79.     
  80.     void                 FW_PrivTextReader_Backup(FW_HTextReader self, Environment *ev, FW_ByteCount delta);
  81.     
  82.     FW_LChar             FW_PrivTextReader_GetCharacterAndAdvance(FW_HTextReader self, Environment *ev, FW_ByteCount* bytesInChar);
  83.     
  84.     FW_LChar             FW_PrivTextReader_BackupAndGetCharacter(FW_HTextReader self, Environment *ev, FW_ByteCount* bytesInChar);
  85.     
  86.     // ----- Run Iteration -----
  87.     
  88.     void                 FW_PrivTextReader_PeekRunAhead(FW_HTextReader self, const char** start, FW_ByteCount* length);
  89.     
  90.     void                 FW_PrivTextReader_PeekRunBehind(FW_HTextReader self, const char** end, FW_ByteCount* length);
  91.     
  92.     // ===== THESE MIGHT BECOME PRIVATE =====
  93.     
  94.     void                 FW_PrivTextReader_GetNextBuffer(FW_HTextReader self, Environment *ev);
  95.     
  96.     void                 FW_PrivTextReader_GetPreviousBuffer(FW_HTextReader self, Environment *ev);
  97.     
  98.     const char*         FW_PrivTextReader_PeekByte(FW_HTextReader self);
  99.     
  100. FW_EXTERN_C_END
  101.  
  102. //========================================================================================
  103. //    FW_SPrivTextWriter Functions
  104. //========================================================================================
  105.  
  106. FW_EXTERN_C_BEGIN
  107.  
  108.     // ----- Initialization & Destruction -----
  109.     
  110.     FW_HTextWriter         FW_PrivTextWriter_New(Environment *ev, FW_OTextRunWriter* adoptedWriter);
  111.     
  112.     void                 FW_PrivTextWriter_Acquire(FW_HTextWriter self);
  113.  
  114.     void                 FW_PrivTextWriter_Release(FW_HTextWriter self, Environment *ev);
  115.     
  116.     // ----- Attribute Accessors -----
  117.     
  118.     void                 FW_PrivTextWriter_SetBufferSum(FW_HTextWriter self, FW_ByteCount bufferSum);
  119.     
  120.     void                 FW_PrivTextWriter_FlushBuffer(FW_HTextWriter self, Environment* ev);
  121.     
  122.     void                 FW_PrivTextWriter_FlushAndGetNextBuffer(FW_HTextWriter self, Environment* ev);
  123.     
  124.     void                 FW_PrivTextWriter_PutCharacterAndAdvance(FW_HTextWriter self, Environment *ev, FW_LChar character, FW_ByteCount bytesInChar);
  125.  
  126.     FW_ByteCount         FW_PrivTextWriter_GetPosition(FW_HTextWriter self, Environment *ev);
  127.  
  128.     void                 FW_PrivTextWriter_WritePeek(FW_HTextWriter self, Environment *ev, char** start, FW_ByteCount* length);
  129.     
  130.     void                 FW_PrivTextWriter_WritePeekAdvance(FW_HTextWriter self, char* start, FW_ByteCount bytesWritten);
  131.  
  132. FW_EXTERN_C_END
  133.  
  134. // For CFM-68K [sfu]
  135.  
  136. #if defined(FW_ODFLIB_IMPORT)
  137. #pragma import off
  138. #elif defined(FW_ODFLIB)
  139. #pragma export off
  140. #endif
  141.  
  142. #endif
  143.  
  144.  
  145.